<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Aria: ArSystemStatus Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Aria
   &#160;<span id="projectnumber">2.9.4</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classArSystemStatus.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classArSystemStatus-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ArSystemStatus Class Reference<div class="ingroups"><a class="el" href="group__UtilityClasses.html">Utility Classes</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Utility to get statistics about the host operating system (CPU usage, wireless link data, etc).  
 <a href="classArSystemStatus.html#details">More...</a></p>

<p><code>#include &lt;ArSystemStatus.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a79045c8d15935c747f63ccc527eab02b"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#a79045c8d15935c747f63ccc527eab02b">getCPU</a> ()</td></tr>
<tr class="memdesc:a79045c8d15935c747f63ccc527eab02b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get CPU work to idle ratio since last refresh.  <a href="#a79045c8d15935c747f63ccc527eab02b">More...</a><br /></td></tr>
<tr class="separator:a79045c8d15935c747f63ccc527eab02b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb353a10fc730f1a9bde091b42f8a9fa"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#aeb353a10fc730f1a9bde091b42f8a9fa">getCPUPercent</a> ()</td></tr>
<tr class="memdesc:aeb353a10fc730f1a9bde091b42f8a9fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get CPU usage as percentage since last refresh.  <a href="#aeb353a10fc730f1a9bde091b42f8a9fa">More...</a><br /></td></tr>
<tr class="separator:aeb353a10fc730f1a9bde091b42f8a9fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7cc800bb3d09c5f02688d9c82835b99"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa7cc800bb3d09c5f02688d9c82835b99"></a>
static std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#aa7cc800bb3d09c5f02688d9c82835b99">getCPUPercentAsString</a> ()</td></tr>
<tr class="memdesc:aa7cc800bb3d09c5f02688d9c82835b99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get CPU percentage in a string. <br /></td></tr>
<tr class="separator:aa7cc800bb3d09c5f02688d9c82835b99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80df01a8c879cff6a3d761cdbd5fa742"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classArRetFunctor.html">ArRetFunctor</a>&lt; double &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#a80df01a8c879cff6a3d761cdbd5fa742">getCPUPercentFunctor</a> ()</td></tr>
<tr class="separator:a80df01a8c879cff6a3d761cdbd5fa742"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe9336ea0c0921bf5d84b8466f442847"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#abe9336ea0c0921bf5d84b8466f442847">getMTXWirelessIpAddress1</a> ()</td></tr>
<tr class="memdesc:abe9336ea0c0921bf5d84b8466f442847"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get wireless network ip address (for first configured wireless device).  <a href="#abe9336ea0c0921bf5d84b8466f442847">More...</a><br /></td></tr>
<tr class="separator:abe9336ea0c0921bf5d84b8466f442847"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2e3946b6274b3c73286eb335a2fdbc7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac2e3946b6274b3c73286eb335a2fdbc7"></a>
static int&#160;</td><td class="memItemRight" valign="bottom"><b>getMTXWirelessIpAddress2</b> ()</td></tr>
<tr class="separator:ac2e3946b6274b3c73286eb335a2fdbc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c28a9ce7ba4f0ee4a57a3f7c7317b6a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9c28a9ce7ba4f0ee4a57a3f7c7317b6a"></a>
static int&#160;</td><td class="memItemRight" valign="bottom"><b>getMTXWirelessIpAddress3</b> ()</td></tr>
<tr class="separator:a9c28a9ce7ba4f0ee4a57a3f7c7317b6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a979607f84c76b03f4baa1aa70b846f52"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a979607f84c76b03f4baa1aa70b846f52"></a>
static int&#160;</td><td class="memItemRight" valign="bottom"><b>getMTXWirelessIpAddress4</b> ()</td></tr>
<tr class="separator:a979607f84c76b03f4baa1aa70b846f52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc3173c14e743b6048d14e1f732add2b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adc3173c14e743b6048d14e1f732add2b"></a>
static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#adc3173c14e743b6048d14e1f732add2b">getMTXWirelessIpAddressString</a> ()</td></tr>
<tr class="memdesc:adc3173c14e743b6048d14e1f732add2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the wireless IP address as a string. <br /></td></tr>
<tr class="separator:adc3173c14e743b6048d14e1f732add2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca54a5ae53ed41767e46855192c94135"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aca54a5ae53ed41767e46855192c94135"></a>
static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#aca54a5ae53ed41767e46855192c94135">getMTXWirelessLink</a> ()</td></tr>
<tr class="memdesc:aca54a5ae53ed41767e46855192c94135"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get if the wireless has a link. <br /></td></tr>
<tr class="separator:aca54a5ae53ed41767e46855192c94135"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a0f61041fb7279d9b4b0f2fd245327d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7a0f61041fb7279d9b4b0f2fd245327d"></a>
static <a class="el" href="classArRetFunctor.html">ArRetFunctor</a>&lt; int &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>getMTXWirelessLinkFunctor</b> ()</td></tr>
<tr class="separator:a7a0f61041fb7279d9b4b0f2fd245327d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf968a992d9ac42ded963e58a4ac29d3"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#acf968a992d9ac42ded963e58a4ac29d3">getMTXWirelessQuality</a> ()</td></tr>
<tr class="memdesc:acf968a992d9ac42ded963e58a4ac29d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get wireless network quality (for first configured wireless device).  <a href="#acf968a992d9ac42ded963e58a4ac29d3">More...</a><br /></td></tr>
<tr class="separator:acf968a992d9ac42ded963e58a4ac29d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0df6d18ff7b231e820d6dc8875b33dc5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0df6d18ff7b231e820d6dc8875b33dc5"></a>
static <a class="el" href="classArRetFunctor.html">ArRetFunctor</a>&lt; int &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>getMTXWirelessQualityFunctor</b> ()</td></tr>
<tr class="separator:a0df6d18ff7b231e820d6dc8875b33dc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e4da5cb9a2fbddd97865ff57eb8bbc4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e4da5cb9a2fbddd97865ff57eb8bbc4"></a>
static unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#a5e4da5cb9a2fbddd97865ff57eb8bbc4">getProgramUptime</a> ()</td></tr>
<tr class="memdesc:a5e4da5cb9a2fbddd97865ff57eb8bbc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get program's uptime (seconds) <br /></td></tr>
<tr class="separator:a5e4da5cb9a2fbddd97865ff57eb8bbc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a246a9becc28788fdd0f7b5f74e2e1ae4"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classArRetFunctor.html">ArRetFunctor</a>&lt; unsigned long &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#a246a9becc28788fdd0f7b5f74e2e1ae4">getProgramUptimeFunctor</a> ()</td></tr>
<tr class="separator:a246a9becc28788fdd0f7b5f74e2e1ae4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4058ebb27c1a23961e6974574684aaa7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4058ebb27c1a23961e6974574684aaa7"></a>
static unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#a4058ebb27c1a23961e6974574684aaa7">getUptime</a> ()</td></tr>
<tr class="memdesc:a4058ebb27c1a23961e6974574684aaa7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get total system uptime (seconds) <br /></td></tr>
<tr class="separator:a4058ebb27c1a23961e6974574684aaa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acca5d2be7731dd28aa19123700bd470e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classArRetFunctor.html">ArRetFunctor</a>&lt; unsigned long &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#acca5d2be7731dd28aa19123700bd470e">getUptimeFunctor</a> ()</td></tr>
<tr class="separator:acca5d2be7731dd28aa19123700bd470e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f5725a036598193ff54cfc13bf6f0c8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4f5725a036598193ff54cfc13bf6f0c8"></a>
static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#a4f5725a036598193ff54cfc13bf6f0c8">getUptimeHours</a> ()</td></tr>
<tr class="memdesc:a4f5725a036598193ff54cfc13bf6f0c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get total system uptime (hours) <br /></td></tr>
<tr class="separator:a4f5725a036598193ff54cfc13bf6f0c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60af862bfab3feb049913f64b50cb7f4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a60af862bfab3feb049913f64b50cb7f4"></a>
static std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#a60af862bfab3feb049913f64b50cb7f4">getUptimeHoursAsString</a> ()</td></tr>
<tr class="memdesc:a60af862bfab3feb049913f64b50cb7f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get total system uptime in a string (hours) <br /></td></tr>
<tr class="separator:a60af862bfab3feb049913f64b50cb7f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25ff17d3fd8433a538bb1ad8b61c6b6b"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classArRetFunctor.html">ArRetFunctor</a>&lt; double &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#a25ff17d3fd8433a538bb1ad8b61c6b6b">getUptimeHoursFunctor</a> ()</td></tr>
<tr class="separator:a25ff17d3fd8433a538bb1ad8b61c6b6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d4854ce13b55781053c815aed311ab1"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#a5d4854ce13b55781053c815aed311ab1">getWirelessDiscardedPackets</a> ()</td></tr>
<tr class="memdesc:a5d4854ce13b55781053c815aed311ab1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get wireless network total discarded packets (for first configured wireless device).  <a href="#a5d4854ce13b55781053c815aed311ab1">More...</a><br /></td></tr>
<tr class="separator:a5d4854ce13b55781053c815aed311ab1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c91b50346a66c53f67c9f07a9c43b90"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#a5c91b50346a66c53f67c9f07a9c43b90">getWirelessDiscardedPacketsBecauseNetConflict</a> ()</td></tr>
<tr class="memdesc:a5c91b50346a66c53f67c9f07a9c43b90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get wireless network packets discarded because of a conflict with another network (for first configured wireless device).  <a href="#a5c91b50346a66c53f67c9f07a9c43b90">More...</a><br /></td></tr>
<tr class="separator:a5c91b50346a66c53f67c9f07a9c43b90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa068022f9011e3f307d41a8dc731fc5e"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#aa068022f9011e3f307d41a8dc731fc5e">getWirelessLinkNoise</a> ()</td></tr>
<tr class="memdesc:aa068022f9011e3f307d41a8dc731fc5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get wireless network noise level (for first configured wireless device).  <a href="#aa068022f9011e3f307d41a8dc731fc5e">More...</a><br /></td></tr>
<tr class="separator:aa068022f9011e3f307d41a8dc731fc5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20729ec1a9c8f72d5d4f7732c467cd22"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a20729ec1a9c8f72d5d4f7732c467cd22"></a>
static <a class="el" href="classArRetFunctor.html">ArRetFunctor</a>&lt; int &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>getWirelessLinkNoiseFunctor</b> ()</td></tr>
<tr class="separator:a20729ec1a9c8f72d5d4f7732c467cd22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af22bb9c2a64a1d12508422add6f419c9"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#af22bb9c2a64a1d12508422add6f419c9">getWirelessLinkQuality</a> ()</td></tr>
<tr class="memdesc:af22bb9c2a64a1d12508422add6f419c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get wireless network general link quality heuristic (for first configured wireless device).  <a href="#af22bb9c2a64a1d12508422add6f419c9">More...</a><br /></td></tr>
<tr class="separator:af22bb9c2a64a1d12508422add6f419c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff2d56cedbd24e7834f706136def85ae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aff2d56cedbd24e7834f706136def85ae"></a>
static <a class="el" href="classArRetFunctor.html">ArRetFunctor</a>&lt; int &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>getWirelessLinkQualityFunctor</b> ()</td></tr>
<tr class="separator:aff2d56cedbd24e7834f706136def85ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48dbbe08bad1e69c65e0180c8e622a48"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#a48dbbe08bad1e69c65e0180c8e622a48">getWirelessLinkSignal</a> ()</td></tr>
<tr class="memdesc:a48dbbe08bad1e69c65e0180c8e622a48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get wireless netork signal level (for first configured wireless device).  <a href="#a48dbbe08bad1e69c65e0180c8e622a48">More...</a><br /></td></tr>
<tr class="separator:a48dbbe08bad1e69c65e0180c8e622a48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e8d2b0b5cb997ad92683155d35b7c0c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2e8d2b0b5cb997ad92683155d35b7c0c"></a>
static <a class="el" href="classArRetFunctor.html">ArRetFunctor</a>&lt; int &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>getWirelessLinkSignalFunctor</b> ()</td></tr>
<tr class="separator:a2e8d2b0b5cb997ad92683155d35b7c0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4eaf5ec8e39226cdaa0ed292c59e190"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa4eaf5ec8e39226cdaa0ed292c59e190"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>invalidate</b> ()</td></tr>
<tr class="separator:aa4eaf5ec8e39226cdaa0ed292c59e190"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a274ecca735d3771e2c4a3d22efcc493c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#a274ecca735d3771e2c4a3d22efcc493c">refresh</a> ()</td></tr>
<tr class="separator:a274ecca735d3771e2c4a3d22efcc493c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a121e1d1852d35e065ad6d9bbb9088b49"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#a121e1d1852d35e065ad6d9bbb9088b49">runRefreshThread</a> (int refreshFrequency=5000)</td></tr>
<tr class="separator:a121e1d1852d35e065ad6d9bbb9088b49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6e5261ced138e54853baa719d53d1a0"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#ae6e5261ced138e54853baa719d53d1a0">startPeriodicUpdate</a> (int refreshFrequency=5000, <a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">ArLog::LogLevel</a> logLevel=<a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3a6e80d09c67dad73e9ba736e91ec893be">ArLog::Verbose</a>)</td></tr>
<tr class="memdesc:ae6e5261ced138e54853baa719d53d1a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new thread which periodically invalidates cached data, causing it to be recalculated when next accessed.  <a href="#ae6e5261ced138e54853baa719d53d1a0">More...</a><br /></td></tr>
<tr class="separator:ae6e5261ced138e54853baa719d53d1a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b2690493ccabdec4ea760f7935093f5"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArSystemStatus.html#a5b2690493ccabdec4ea760f7935093f5">stopPeriodicUpdate</a> ()</td></tr>
<tr class="memdesc:a5b2690493ccabdec4ea760f7935093f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop periodic update thread.  <a href="#a5b2690493ccabdec4ea760f7935093f5">More...</a><br /></td></tr>
<tr class="separator:a5b2690493ccabdec4ea760f7935093f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Utility to get statistics about the host operating system (CPU usage, wireless link data, etc). </p>
<p>Normally, calling any accessor to read a value will query the operating system to get the most recent value. However, if you will be accessing data very frequently and want those calls to be faster, you can start a thread by calling <a class="el" href="classArSystemStatus.html#ae6e5261ced138e54853baa719d53d1a0" title="Create a new thread which periodically invalidates cached data, causing it to be recalculated when ne...">startPeriodicUpdate()</a> which will periodically query new values from the operating system and cache them for accessors to return.</p>
<p>This class is only implemented for Linux; on Windows you will get invalid information.  </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a79045c8d15935c747f63ccc527eab02b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double ArSystemStatus::getCPU </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get CPU work to idle ratio since last refresh. </p>
<p>This is a value ranging from (0 .. 1) X (Num. CPUs). (Therefore if you have two CPUs, the maximum value will be 2.0, or 200%.) This value is calculated as the percentage of time the CPU spent doing work (not in "idle" state) since the previous calculation. </p><dl class="section return"><dt>Returns</dt><dd>CPU usage value, or -1 if unable to determine </dd></dl>

</div>
</div>
<a class="anchor" id="aeb353a10fc730f1a9bde091b42f8a9fa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double ArSystemStatus::getCPUPercent </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get CPU usage as percentage since last refresh. </p>
<p>This is a value ranging from (0..100) X (Num. CPUs). (Therefore if you have two CPUs, the maximum value will be 200%). </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="classArSystemStatus.html#a79045c8d15935c747f63ccc527eab02b" title="Get CPU work to idle ratio since last refresh. ">getCPU()</a> </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>CPU usage as percentage, or -1 if not able to determine </dd></dl>

</div>
</div>
<a class="anchor" id="a80df01a8c879cff6a3d761cdbd5fa742"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classArRetFunctor.html">ArRetFunctor</a>&lt; double &gt; * ArSystemStatus::getCPUPercentFunctor </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Pointer to a functor which can be used to retrieve the current CPU percentage </dd></dl>

</div>
</div>
<a class="anchor" id="abe9336ea0c0921bf5d84b8466f442847"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ArSystemStatus::getMTXWirelessIpAddress1 </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get wireless network ip address (for first configured wireless device). </p>

</div>
</div>
<a class="anchor" id="acf968a992d9ac42ded963e58a4ac29d3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ArSystemStatus::getMTXWirelessQuality </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get wireless network quality (for first configured wireless device). </p>

</div>
</div>
<a class="anchor" id="a246a9becc28788fdd0f7b5f74e2e1ae4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classArRetFunctor.html">ArRetFunctor</a>&lt; unsigned long &gt; * ArSystemStatus::getProgramUptimeFunctor </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Pointer to a functor which can be used to retrieve the current uptime (hours) </dd></dl>

</div>
</div>
<a class="anchor" id="acca5d2be7731dd28aa19123700bd470e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classArRetFunctor.html">ArRetFunctor</a>&lt; unsigned long &gt; * ArSystemStatus::getUptimeFunctor </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Pointer to a functor which can be used to retrieve the current uptime (hours) </dd></dl>

</div>
</div>
<a class="anchor" id="a25ff17d3fd8433a538bb1ad8b61c6b6b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classArRetFunctor.html">ArRetFunctor</a>&lt; double &gt; * ArSystemStatus::getUptimeHoursFunctor </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Pointer to a functor which can be used to retrieve the current uptime (hours) </dd></dl>

</div>
</div>
<a class="anchor" id="a5d4854ce13b55781053c815aed311ab1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ArSystemStatus::getWirelessDiscardedPackets </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get wireless network total discarded packets (for first configured wireless device). </p>

</div>
</div>
<a class="anchor" id="a5c91b50346a66c53f67c9f07a9c43b90"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ArSystemStatus::getWirelessDiscardedPacketsBecauseNetConflict </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get wireless network packets discarded because of a conflict with another network (for first configured wireless device). </p>

</div>
</div>
<a class="anchor" id="aa068022f9011e3f307d41a8dc731fc5e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ArSystemStatus::getWirelessLinkNoise </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get wireless network noise level (for first configured wireless device). </p>

</div>
</div>
<a class="anchor" id="af22bb9c2a64a1d12508422add6f419c9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ArSystemStatus::getWirelessLinkQuality </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get wireless network general link quality heuristic (for first configured wireless device). </p>

</div>
</div>
<a class="anchor" id="a48dbbe08bad1e69c65e0180c8e622a48"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ArSystemStatus::getWirelessLinkSignal </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get wireless netork signal level (for first configured wireless device). </p>

</div>
</div>
<a class="anchor" id="a274ecca735d3771e2c4a3d22efcc493c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void ArSystemStatus::refresh </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000072">Deprecated:</a></b></dt><dd>Calling this function is no longer neccesary.</dd></dl>

</div>
</div>
<a class="anchor" id="a121e1d1852d35e065ad6d9bbb9088b49"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void ArSystemStatus::runRefreshThread </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>refreshFrequency</em> = <code>5000</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000071">Deprecated:</a></b></dt><dd>use <a class="el" href="classArSystemStatus.html#ae6e5261ced138e54853baa719d53d1a0" title="Create a new thread which periodically invalidates cached data, causing it to be recalculated when ne...">startPeriodicUpdate()</a> which has a better name.</dd></dl>

</div>
</div>
<a class="anchor" id="ae6e5261ced138e54853baa719d53d1a0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArSystemStatus::startPeriodicUpdate </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>refreshFrequency</em> = <code>5000</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">ArLog::LogLevel</a>&#160;</td>
          <td class="paramname"><em>logLevel</em> = <code><a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3a6e80d09c67dad73e9ba736e91ec893be">ArLog::Verbose</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a new thread which periodically invalidates cached data, causing it to be recalculated when next accessed. </p>
<p>INTERNAL_CLASSES.</p>
<p>Starting this thread is optional; start it if you will be accessing the data frequently, so that is doesn't need to be re-read and re-calculated on each access. If you will only be accessing the data occasionally, you do not need to start the update thread, it will be updated each time you read a value. </p>

</div>
</div>
<a class="anchor" id="a5b2690493ccabdec4ea760f7935093f5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArSystemStatus::stopPeriodicUpdate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Stop periodic update thread. </p>
<p>Henceforth any access of data will cause it to be re-read and recalculated. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>ArSystemStatus.h</li>
<li>ArSystemStatus.cpp</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classArSystemStatus.html">ArSystemStatus</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
